هوش مصنوعی و علم دادهها دو مفهوم جدانشدنی هستند. هوش مصنوعی به زیرشاخههای مختلفی تقسیم شده که هر یک کاربردهای خاصی دارند. یادگیری ماشین، شبکههای عصبی مصنوعی، پردازش زبان طبیعی، بینایی ماشین، یادگیری عمیق و.... همگی در زیر مجموعه مفهومی به نام هوش مصنوعی طبقهبندی میشوند. اما در بطن تمامی فناوریهای هوشمندی که از آنها استفاده میکنیم عنصر بنیادینی بهنام داده وجود دارد. بدون دادهها هیچیک از فناوریهای هوشمند امروزی قادر به انجام وظایف خود نیستند. به همین دلیل است که دانشی بهنام علم دادهها (Data science) به یکی از داغترین مباحث روز دنیای هوش مصنوعی تبدیل شده که پژوهشگران و برنامهنویسان زیادی را جذب کرده است. علم دادهها به دلیل جذابیت و گستردگی خاصی که دارد، زمینهساز شکلگیری مشاغل متنوعی همچون دانشمند دادهها، مهندس دادهها، مهندس یادگیری ماشین، مدیر دادهها، معمار دادهها و تحلیلگر دادهها شده که همگی جزء مشاغل پر درآمد این حوزه هستند.
زمانیکه صحبت از تجزیه و تحلیل دادهها میشود، هر دو زبان برنامهنویسی پایتون و R به عنوان گزینههای ساده و رایگانی که نصب و یادگیری آنها پیچیدگی خاصی ندارد، پیشنهاد میشوند. اگر فردی تازهوارد به دنیای علم دادهها هستید و تجربه کار با هیچیک از این دو زبان را ندارید یا در حالت کلی هیچ تجربهای در دنیای برنامهنویسی ندارید، در انتخاب گزینه مناسب دچار تردید خواهید شد که بهتر است ابتدا به سراغ یادگیری پایتون برویم یا زبان R را انتخاب کرده یا در حالت کلیتر هر دو زبان را همزمان یاد بگیریم (که حالت آخر را توصیه نمیکنیم). انتخاب هر یک از گزینههای یاد شده به عنوان نقطه شروع کار اشتباهی نیست، زیرا هر دو زبان مهارتهای کلیدی در اختیارتان قرار میدهند تا بتوانید به درستی با دادهها کار کنید. برای آنکه با قابلیتها و مزایای هر یک از زبانها آشنا شوید، اجازه دهید ابتدا به سراغ زبان R رفته و سپس به این پرسش مهم پاسخ دهیم که بر مبنای ویژگیهای هر یک از این دو زبان، چگونه گزینه مدنظر خود را انتخاب کنیم.
زبان R چه مزایایی دارد؟
زبان برنامهنویسی R قدمتی زیاد دارد و در گروه زبانهای برنامهنویسی قابل اعتماد طبقهبندی میشود که انجمنی قدرتمند از توسعهدهندگان و متخصصان علم دادهها از آن پشتیبانی میکنند. به لطف انجمنهای مختلفی که برای این زبان برنامهنویسی وجود دارند افرادی که از زبان آر استفاده میکنند با مشکل چندان خاصی روبرو نمیشوند، زیرا پشتیبانی آنلاین خوبی از آنها به عمل میآید. در نتیجه افراد تازهکار یا توسعهدهندگانی که در انجام پروژههای خود با مشکلی روبرو میشوند با طیف گستردهای از متخصصان این زبان پشتیبانی خواهند شد. علاوه بر پشتیبانی آنلاین، نفوذ این زبان در میان متخصصان زیاد بوده و بالغ بر 5000 هزار بسته آماده برای این زبان ارائه شده که امکان دانلود و بهکارگیری آنها همراه با زبان R امکانپذیر است. بستههایی که دامنه فعالیتهای این زبان را گسترش داده و اجازه میدهند از زبان R برای انجام وظایف مختلف (عمدتا در ارتباط با مبحث تحلیل دادهها و دادهکاوی) استفاده کنید. همین موضوع باعث شده تا زبان آر برای انجام تجزیه و تحلیلهای داده اکتشافی (exploratory data analysis) به گزینه مناسبی تبدیل شود. زبان برنامهنویسی آر با سایر زبانهای برنامهنویسی همچون سیپلاسپلاس، جاوا و سی یکپارچه میشود. زمانیکه نیاز به انجام تحلیلهای آماری پیچیده و سنگین یا رسم نمودار ضروری است، زبان برنامهنویسی آر انتخاب درستی است. عملیات ریاضی رایج همچون ضرب ماتریسها به سادگی و به دور از پیچیدگیهای مرسوم انجام میشود و ترکیب نحوی آرایهمحور این زبان قابلیت کارآمدی برای ترجمه ریاضیات به کدها در اختیار افرادی قرار داده که هیچ پیشینهای در برنامهنویسی ندارند.
چرا باید پایتون را انتخاب کرد؟
پایتون یک زبان برنامهنویسی همه منظوره است و میتواند هر کاری انجام دهد. پایتون میتواند در زمینه پیشپردازش دادهها، مهندسی دادهها، ساخت برنامههای تحت وب، جمعآوری دادهها از وب website scraping)، data wrangling) و..... استفاده شود. اگر در گذشته با زبانهای برنامهنویسی شیگرایی همچون جاوا یا سیپلاسپلاس کار کردهاید، یادگیری پایتون در مقایسه با R سادهتر است. علاوه بر این، پایتون یک زبان برنامهنویسی شیگرا است که اجازه میدهد کدهای بزرگ گسترشپذیر، قابل نگهداری و قدرتمند را سادهتر از زبان آر بنویسید. زبان برنامهنویسی پایتون به توسعهدهندگان اجازه میدهد کدنمونه اولیه (prototype) که روی کامپیوتر خود نوشتهاند را در صورت لزوم به عنوان کدمحصول (محصولی که به عنوان پیشنمایش به مشتری نشان داده میشود) استفاده کنند. درست است که پایتون در مقایسه با زبان آر بستههای جامع کمتری برای انجام تحلیلهای آماری در اختیار دارد، اما هنوز هم کتابخانهها و ابزارهایی شبیه به Pandas، NumPy، Scipy، Scikit-Learn و Seaborn وجود دارندکه پایتون را به زبان مناسبی برای تحلیل دادههای هوش مصنوعی و یادگیری ماشین تبدیل کردهاند. پایتون به یکی از گزینههای اصلی در حوزه برنامهنویسی یادگیری ماشین تبدیل شده و در انجام کارهای آماری در حد اولیه و متوسط که پیش از این در حیطه تواناییهای زبان آر بود، عملکرد قابل قبولی دارد.
کدامیک را باید انتخاب کنیم؟ پایتون یا R
اکنون که تا حدودی با قابلیتهای اصلی این دو زبان در ارتباط با مبحث علم دادهها آشنا شدید وقت آن رسیده تا مقایسهای میان این دو زبان داشته باشیم.
ترجیح شخصی
انتخاب یک زبان برنامهنویسی در ابتدای راه، به میزان قابل توجهی به علایق شخصی و اولویتهای فردی بستگی دارد. بهطور مثال، بیشتر کارشناسان حوزه آمار و ریاضیدانان برای انجام کارها زبان آر را انتخاب میکنند، در مقابل مهندسان نرمافزار و دانشمندان علوم کامپیوتر زبان پایتون را انتخاب میکنند. در برخی از دانشگاههای کشور نیز دانشجویان رشتههای نرمافزار باید با زبان جاوا یا پایتون برنامههای خود را بنویسند، به ویژه اگر دانشجوی رشته کارشناسی ارشد هوش مصنوعی باشند. قاعدهای کلی در ارتباط با یادگیری زبانها وجود دارد. این قاعده میگوید اگر شما یک زبان برنامهنویسی را به درستی یاد گرفته باشید، در ادامه یادگیری سایر زبانها کار چندان سختی نیست، البته به شرطی که تمرکز به جای آنکه روی ترکیب نحوی یک زبان خاص باشد، باید روی یادگیری مفاهیم و مبانی برنامهنویسی باشد. یادگیری ترکیب نحوی و ویژگیهای یک زبان در اولویت بعدی قرار دارند.
انتخاب پروژه
در بیشتر موارد یادگیری یک زبان جدید به ویژه در بحث علم دادهها به پروژهای که در حال کار روی آن هستید بستگی دارد. بهطور مثال، اگر با دادههای جمعآوری و پالایش شده سرورکار دارید و پروژه شما حول محور تحلیل دادهها قرار دارد، زبان R انتخاب بهتری نسبت به پایتون است. اگر در حال جمعآوری دادهها هستید یا دادههای غیرساخت یافته و ناهمگون در اختیار دارید یا به دنبال استخراج دادهها از صفحات وب و فایلها هستید یا به دنبال افزایش سطح مهارتهای خود در زمینه کار با دادهها هستید، پایتون انتخاب درستی است.
نحوه تعامل و همکاری با سایر اعضا تیم
زمانیکه مبانی تجزیه و تحلیل دادهها را آموختید، فاکتور مهم دیگری که به شما در یادگیری یک زبان جدید کمک فراوانی میکند به نحوه تعامل شما با سایر اعضا تیم بستگی دارد. در این مرحله باید ببینید که سایر اعضا تیم از چه زبان برنامهنویسی استفاده میکنند. اگر مشاهده کردید که همه اعضا تیم از زبان برنامهنویسی یکسانی استفاده میکنند، یادگیری همان زبان به تعامل سادهتر و درک مشترک کمک فراوانی میکند.
بازار کار
بازار کار مهمترین فاکتوری است که باید مدنظر قرار داد. بهطور مثال، علاقه شخصی شما ممکن است یادگیری زبان برنامهنویسی سیپلاسپلاس در انجام تحلیلهای دادهای باشد، اما بازار کار گستردهای برای این ترکیب در دسترس نباشد. فرصتهای شغلی برای برنامهنویسان پایتون در زمینه تجزیه و تحلیل دادهها در مقایسه با زبان R در چند سال گذشته رشد چشمگیری داشته است. شکل 1 نشان میدهد که پایتون توانسته است فرصتهای شغلی که پیش از این در سیطره زبان R بود را از آن خود کند.
اکوسیستم پایتون به اندازهای رشد کرده و بزرگ شده که تقریبا برای هر مدل پردازشی که قرار است در زبان پایتون انجام شود ابزارها و کتابخانههای متنوعی وجود دارد. توسعهدهندگان میتوانند از پایتون برای طراحی و ساخت برنامههای تحت وب استفاده کنند. این قابلیت به توسعهدهندگان و شرکتها اجازه میدهد نیروهای موردنیاز خود را هم برای تیمهای تحلیل علم دادهها و هم تیمهای توسعه برنامههای کاربردی تحت وب استخدام کنند. البته این مسئله باعث بروز مشکلاتی نیز شده است، زیرا متخصصان علم دادهها ممکن است برای کسب درآمد و امرار معاش جذب تیمهایی شوند که حیطه کاری آنها محدود به طراحی برنامههای تحت وب است و به این شکل بازار کار با کمبود متخصصان علم دادهها روبرو میشود.
کلام آخر
در حالت کلی، اگر در ابتدا پایتون یا R را برای تجزیه و تحلیل دادهها یاد بگیرید، ضرری نکردهاید. هر زبان در سناریوهای مختلف و برای انجام کارهای مختلف نقاط قوت و ضعف خاص خود را دارد. همچنین، کتابخانههایی وجود دارند که اجازه میدهند پایتون را همراه با زبان آر یا بالعکس استفاده کرد. بنابراین یادگیری یک زبان، باعث نمیشود از یادگیری زبان دیگر انصراف دهید. اما به عنوان یک قاعده کلی پیشنهاد میکنیم ابتدا به سراغ زبان پایتون بروید، زیرا در دنیای برنامهنویسی نقش یک آچار فرانسه را بازی میکند!
به این مطلب چند ستاره میدهید؟(امتیاز: 4.5 - رای: 5)
- منبع: ماهنامه شبکه
- نویسنده: حمیدرضا تائبی